import Vue from 'vue'
import axios from 'axios'
const vm = new Vue()
import store from '../store/index.js'
import $router from '../router/index.js'

if (process.env.NODE_ENV === 'production') {
	// 为生产环境修改配置... 
	axios.defaults.baseURL = 'https://mottecommerce.com' 
	// axios.defaults.baseURL = 'https://www.killysrebate.com' 
} else {
	// 为开发环境修改配置... 
	axios.defaults.baseURL = '/api'
}
axios.interceptors.request.use((config) => {
	config.params = {
		...config.params
	}
	let token = window.localStorage.getItem('token')
	if (token) {
		config.headers.Authorization = 'Bearer ' + token
	}
	return config
}, (err) => {
	console.log(err)
})
axios.interceptors.response.use(function(res) {
	if ('code' in res.data == false) {
		return res.data
	}
	if (res.data.code != '000000') {
		console.log(res.data.msg)
		vm.showToast(res.data.data || res.data.msg)
		return Promise.reject(res.data.data || res.data.msg)
	}
	return res.data
}, function(error) {
	console.log(error.response)
	// error.response.data  错误的内容
	if (error.response.status == 500) {
		vm.showToast('Server error', 'サーバエラー')
		return Promise.reject()
	}
	if (error.response.data.code == '020001') {
		if(window.localStorage.getItem('token')){
			vm.showToast('Logon failure', '登録失効')
		}
		store.commit('SIGN_OUT')
		setTimeout(() => {
			$router.push('/login')
		}, 1000)
		return Promise.reject()
	}
	// 对请求错误做些什么   
	vm.showToast(error.response.data.data)
	return Promise.reject(error)
})
const uploadFill = (data) => {
	// 上传图片需要将图片使用formdata格式
	// let formdata = new FormData()
	// formdata.append('imgess',this.uploadFill[0].file)
	// 或使用封装好的this.$tool.objToFormData({
	// 				imgess:this.uploadFill[0].file
	// 			})
	return axios({
		...data,
		headers: {
			'content-type': 'multipart/form-data'
		},
	})
}
export {
	axios,
	uploadFill
}
